package org.zergle.utils;

import java.util.Enumeration;
import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 资源包管理器，
 * 
 * @author Johnson.Lee
 * 
 */
public class ResourceBundleManager {
	protected ResourceBundle bundle;

	/**
	 * 根据类实例化资源包管理器
	 * 
	 * @param cls
	 *            Class实例
	 */
	public ResourceBundleManager(Class<?> cls) {
		this(cls, null);
	}

	/**
	 * 根据类和语言环境实例化资源包管理器
	 * 
	 * @param cls
	 *            Class实例
	 * @param locale
	 *            语言环境
	 */
	public ResourceBundleManager(Class<?> cls, Locale locale) {
		String path = cls.getPackage().getName() + ".bundle";
		if (locale == null) {
			locale = Locale.getDefault();
		}
		this.bundle = ResourceBundle.getBundle(path, locale);
	}

	/**
	 * 返回资源包中指定键对应的字符串值
	 * 
	 * @param key
	 *            键
	 * @return 资源包中指定键对应的字符串值
	 */
	public String getString(String key) {
		return this.bundle.getString(key);
	}

	/**
	 * 返回资源包中指定键对应的值
	 * 
	 * @param key
	 *            键
	 * @return 资源包中指定键对应的值
	 */
	public Object getObject(String key) {
		return this.bundle.getObject(key);
	}

	/**
	 * 返回资源包中所有键的名称的枚举
	 * 
	 * @return 资源包中所有键的名称的枚举
	 */
	public Enumeration<String> getKeys() {
		return this.bundle.getKeys();
	}
}
